#include <vector>
#include <string>
#include <list>
#include <set>
using namespace std;
class Validation{
	public:
		Validation::Validation();
		struct V{
			string relation;
			int argNo;
			set<string> arg1_type;
			set<string> arg2_type;
		};
		typedef vector<V> vlist;
		vlist vl;
		set<string> argList;
		bool check_param_type(string paramType);
		bool check_select(string select);
		bool check_no_bool(string isbool);
		bool check_type_exist(string param);
		bool check_func(string func_name, int argno, string arg1_type, string arg2_type);
		bool check_with(string arg1_type,string arg1_attribute,string arg2_type, string arg2_attribute);
		bool check_pattern(string pattern_type, string arg1_type, string arg2_type);
};